#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>

//void handler(int signo)
//{
//  int ret = 0;
//  printf("get a : %d signo\n",signo);
//  while(ret = waitpid(-1, NULL, WNOHANG) > 0){
//    printf("wait child %d success\n",ret);
//  }
//
//}

int main()
{
  //signal(17,handler);
  signal(17,SIG_IGN); //SIG_DFL

  if(fork() == 0){
    printf("child is runing, begin dead!: %d\n",getpid());
    sleep(3);
    exit(1);
  }

  while(1)
  {
    printf(" ");
    sleep(1);
  }
  return 0;
}

//volatile int flag = 0;
//
//void handler(int signo)
//{
//  printf("get %d signo!\n",signo);
//
//  flag = 1;
//}
//
//int main()
//{
//  signal(2,handler);
//  while(!flag)
//  {
//
//  }
//  printf("Proc Normal Quit!\n");
//  return 0;
//}
//
//


//struct sigaction act,oact;
//
//void handler(int signo)
//{
//  printf("get a signal: %d\n",signo);
//  sigaction(SIGINT,&oact,NULL);
//}
//
//int main()
//{
//  memset(&act,0,sizeof(act));
//  memset(&oact,0,sizeof(oact));
//
//  act.sa_handler = handler;
//  act.sa_flags = 0;
//  sigemptyset(&act.sa_mask);
//
//  sigaction(SIGINT,&act,&oact);
//  while(1)
//  {
//    printf("I am a process!\n");
//    sleep(1);
//  }
//  return 0;
//}
